Function.prototype.myCall = function (context) {
    // this必须是一个方法
    if (typeof this !== 'function') return
    // 没有context，则取值window
    context = context || window
    // 获取第一个参数外的参数
    const args = [...arguments].slice(1);
    // 把需要调用的方法赋值给上下文
    context.fn = this
    // 上下文调用改方法并返回
    return context.fn(...args)
}

export const myCallString = `Function.prototype.myCall = function (context) {
    // this必须是一个方法
    if(typeof this !== 'function') return
    // 没有context，则取值window
    context = context || window
    // 获取第一个参数外的参数
    const  args = [...arguments].slice(1);
    // 把需要调用的方法赋值给上下文
    context.fn = this
    // 上下文调用改方法并返回
    return context.fn(...args)
  } `